<?php

/**
 * 打印日志函数
 * @param $txtname
 * @param $data
 */
function mlog($txtname,$data){
    $now = date("Y-m-d H:i:s",time());
    $log_dir = base_path('log');
    if (!is_dir($log_dir)){
        mkdir ($log_dir,0777,true);
    }
    $log = $log_dir.'/'.$txtname.'.txt';
    file_put_contents($log,var_export($now,1)."\r\n",FILE_APPEND);
    file_put_contents($log,var_export($data,1)."\r\n",FILE_APPEND);
    file_put_contents($log,"================================"."\r\n",FILE_APPEND);
}

/**
 * 数据处理函数
 */
if (!function_exists('myResult')) {
    function myResult(){
        return new \Platform\System\Tools\ResultTool();
    }
}

/**
 * 拼接token返回格式
 * @param $token
 * @param $jwt_auth
 * @return array
 */
function withToken($token,$jwt_auth){

    return [
        'access_token' => $token,
        'token_type' => 'bearer',
        'expires_in' => auth($jwt_auth)->factory()->getTTL() * 60
    ];
}

/**
 * 获取随机码
 * @param $length
 * @param bool $num_word 是否包含数字
 * @param bool $small_word 是否包含小写字母
 * @param bool $big_word 是否包含大写字母
 * @return string
 */
function randomKeys($length,$num_word = true, $small_word = false , $big_word = false){
    $key='';
    $n_word ='1234567890';
    $s_word ='abcdefghijklnmopqrstuvwxyz';
    $b_word ='ABCDEFGHIJKLNMOPQRSTUVWXYZ';

    $pattern = '';
    if ($num_word) {
        $pattern .= $n_word;
    }
    if ($small_word){
        $pattern .= $s_word;
    }
    if ($big_word){
        $pattern .= $b_word;
    }

    for($i=0;$i<$length;++$i) {
        $key .= $pattern{mt_rand(0,strlen($pattern)-1)};    // 生成php随机数
    }
    return $key;
}

/**
 * 获取字符串长度
 * @param $str
 * @return bool|int
 */
function getStrLength($str){

    return $utf8_Length = mb_strlen($str, "utf8");
}


/**
 * 压缩图片函数
 * @param string $path 相对路径
 * @param string $filesystem 文件系统
 * @param int $quality 质量
 * @param null $width 宽度
 * @param string $encode 编码格式
 * @return string
 */
function pressImg($path, $filesystem = 'public', $encode = 'jpg', $quality = 80,$width = null){
    $filepath = \Illuminate\Support\Facades\Storage::disk($filesystem)->path($path);
    $path = str_ireplace(strrchr($path,'.'),'',$path).'.'.$encode;
    $savepath = \Illuminate\Support\Facades\Storage::disk($filesystem)->path($path);
    $img = \Intervention\Image\Facades\Image::make($filepath);
    if ($width){
        $img->resize($width, null, function($constraint){		// 调整图像的宽到 $width，并约束宽高比(高自动)
            $constraint->aspectRatio();
        });
    }
    $img->save($savepath,$quality);
    return $path;
}